﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SOA.DAL
{
    public class Estoque
    {
        public SOA.MODEL.Estoque GetEstoqueByFilial(int idFilial)
        {
            var dt = new Db().Query("SELECT * FROM TB_ESTOQUE WHERE ID_FILIAL = " + idFilial);
            if (dt.Rows.Count == 0)
                return new MODEL.Estoque();
            var e = new MODEL.Estoque();
            e.QtdeHotDog1 = Convert.ToInt32(dt.Rows[0]["QTDE_HOT_DOG_1"]);
            e.QtdeHotDog2 = Convert.ToInt32(dt.Rows[0]["QTDE_HOT_DOG_2"]);
            e.QtdeRefri1 = Convert.ToInt32(dt.Rows[0]["QTDE_REFRI_1"]);
            e.QtdeRefri2 = Convert.ToInt32(dt.Rows[0]["QTDE_REFRI_2"]);
            return e;
        }

        public SOA.MODEL.EstoqueMinimo GetEstoqueMinimoByFilial(int idFilial)
        {
            var dt = new Db().Query("SELECT * FROM TB_ESTOQUE WHERE ID_FILIAL = " + idFilial);
            if (dt.Rows.Count == 0)
                return new MODEL.EstoqueMinimo();
            var e = new MODEL.EstoqueMinimo();
            e.MinimoHotDog1 = Convert.ToInt32(dt.Rows[0]["MINIMO_HOT_DOG_1"]);
            e.MinimoHotDog2 = Convert.ToInt32(dt.Rows[0]["MINIMO_HOT_DOG_2"]);
            e.MinimoRefri1 = Convert.ToInt32(dt.Rows[0]["MINIMO_REFRI_1"]);
            e.MinimoRefri2 = Convert.ToInt32(dt.Rows[0]["MINIMO_REFRI_2"]);
            return e;
        }

        public bool BaixarEstoqueByFilial(SOA.MODEL.Estoque e,int idFilial)
        {
            var estoqueAtual = GetEstoqueByFilial(idFilial);
            estoqueAtual.QtdeHotDog1 -= e.QtdeHotDog1;
            estoqueAtual.QtdeHotDog2 -= e.QtdeHotDog2;
            estoqueAtual.QtdeRefri1 -= e.QtdeRefri1;
            estoqueAtual.QtdeRefri2 -= e.QtdeRefri2;

            var sqlUpdate = "UPDATE TB_ESTOQUE SET QTDE_HOT_DOG_1 = " + estoqueAtual.QtdeHotDog1 + ", ";
            sqlUpdate += "QTDE_HOT_DOG_2 = " + estoqueAtual.QtdeHotDog2 + ",";
            sqlUpdate += "QTDE_REFRI_1 = " + estoqueAtual.QtdeRefri1 + ",";
            sqlUpdate += "QTDE_REFRI_2 = " + estoqueAtual.QtdeRefri2 + " ";
            sqlUpdate += "WHERE ID_FILIAL = " + idFilial;

            return new Db().Execute(sqlUpdate) > 0;
        }

        public bool IncluirEstoqueByFilial(SOA.MODEL.Estoque e, int idFilial)
        {
            var estoqueAtual = GetEstoqueByFilial(idFilial);
            estoqueAtual.QtdeHotDog1 += e.QtdeHotDog1;
            estoqueAtual.QtdeHotDog2 += e.QtdeHotDog2;
            estoqueAtual.QtdeRefri1 += e.QtdeRefri1;
            estoqueAtual.QtdeRefri2 += e.QtdeRefri2;

            var sqlUpdate = "UPDATE TB_ESTOQUE SET QTDE_HOT_DOG_1 = " + estoqueAtual.QtdeHotDog1 + ", ";
            sqlUpdate += "QTDE_HOT_DOG_2 = " + estoqueAtual.QtdeHotDog2 + ",";
            sqlUpdate += "QTDE_REFRI_1 = " + estoqueAtual.QtdeRefri1 + ",";
            sqlUpdate += "QTDE_REFRI_2 = " + estoqueAtual.QtdeRefri2 + " ";
            sqlUpdate += "WHERE ID_FILIAL = " + idFilial;

            return new Db().Execute(sqlUpdate) > 0;
        }
    }
}